新手问题->结构体指针

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:07:42
#include <stdio.h>
#include <stdlib.h>
typedef struct tast
{
int data;
struct tast *next;
}tast;

int input(tast *q,int data)
{
q=(tast *)malloc(sizeof(tast));
q->next=data;
return(1);
}

main()
{
tast *q;
int data;
printf("\ninput a num:");
scanf("%d",&data);
if(input(q,data))
printf("%d",q->data);
else
printf("\nfailed!\n");
getch();
}
结果不正确~如果是return(q)的话`是正确结果``但是不明白着是为什么~~

你也算是错打错着

tast* input(tast *q,int data)
{
q = (tast *)malloc(sizeof(tast)); //申请一块内存,如果分配不成功,q = NULL
q - >data = data; //给内存赋值
return q;//返回内存地址,主函数中用 if(input())判断返回的内存地址是否是有效地址
}

指针。。。。很遥远的记忆了。。。。

错在input函数中的赋值了,你是要将data存入结构体的data中,程序中却写成赋值给next指针了

你这程序是不是不全啊,完全没有逻辑